<?php

	function subirFichero($idFichero, $rutaFichero, $rutaThumbnail)
	{

		//caracteristicas del archivo subido
		$nombre = $_FILES[$idFichero]['name'];
		$tipo = $_FILES[$idFichero]['type'];
		$tamano = $_FILES[$idFichero]['size'];

		//Informo al usuario de las caracteristicas
		//echo "<h3>Subiendo el Archivo:</h3><br /> ";
		//echo $nombre."<br />";
		//echo $tipo."<br />";
		//echo $tamano."<br />";

		//limitaciones impuestas por nosotros
		$tamMaximo = 2*1024*1024; //Dos megas como maximo
		$permitidas = array('jpeg','jpg'); //Extensiones permitidas

		//Comprobamos que es un archivo subido desde el navegador
		//-------------------------------------------------------
		if (!is_uploaded_file($_FILES[$idFichero]['tmp_name'])){
			echo "El archivo no proviene de un navegador";
			unlink($_FILES[$idFichero]['tmp_name']); //Borro el archivo
			exit();
		}

		//Comprobamos el tamaño
		//---------------------
		if($tamano > $tamMaximo){
			echo "El tamaño del archivo es superior al permitido";
			unlink($_FILES[$idFichero]['tmp_name']); //Borro el archivo
			exit();
		}

		//Comprobamos si es del tipo permitido
		//------------------------------------
		if (($tipo !='image/jpeg') and ($tipo !='image/pjpeg')){
			echo "Solo se permiten archivos en formato JPEG.";
			unlink($_FILES[$idFichero]['tmp_name']); //Borro el archivo
			exit();
		}

		//Comprobamos la extension
		//------------------------
		$trozos = explode(".",$nombre);
		$tam = count($trozos);
		$extension = $trozos[$tam-1]; //obtengo la extension

		//Compruebo que es una extension valida
		if (! in_array($extension,$permitidas) ){
			echo "Solo se admite la extension .jpg";
			unlink($_FILES[$idFichero]['tmp_name']);
			exit();
		}

		//Si todo ha ido bien subo el archivo a la ruta adecuada
		//desde el directorio temporal
		$res=move_uploaded_file($_FILES[$idFichero]['tmp_name'], $rutaFichero);
		if($res){
			//Ruta de la original
			//$rtOriginal="/images/example.jpg";

			//Crear variable de imagen a partir de la original
			//$original = imagecreatefromjpeg($rtOriginal);
			$original = imagecreatefromjpeg($rutaFichero);

			//Definir tamaño máximo y mínimo
			$max_ancho = 235;
			$max_alto = 235;

			//Recoger ancho y alto de la original
			//list($ancho,$alto)=getimagesize($rtOriginal);
			list($ancho,$alto)=getimagesize($rutaFichero);

			//Calcular proporción ancho y alto
			$x_ratio = $max_ancho / $ancho;
			$y_ratio = $max_alto / $alto;

			if( ($ancho <= $max_ancho) && ($alto <= $max_alto) ){
			//Si es más pequeña que el máximo no redimensionamos
			    $ancho_final = $ancho;
			    $alto_final = $alto;
			}
			//si no calculamos si es más alta o más ancha y redimensionamos
			elseif (($x_ratio * $alto) < $max_alto){
			    $alto_final = ceil($x_ratio * $alto);
			    $ancho_final = $max_ancho;
			}
			else{
			    $ancho_final = ceil($y_ratio * $ancho);
			    $alto_final = $max_alto;
			}

			//Crear lienzo en blanco con proporciones
			$lienzo=imagecreatetruecolor($ancho_final,$alto_final);

			//Copiar $original sobre la imagen que acabamos de crear en blanco ($tmp)
			imagecopyresampled($lienzo,$original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);

			//Limpiar memoria
			imagedestroy($original);

			//Definimos la calidad de la imagen final
			//$cal=90;
			$cal=100;

			//Se crea la imagen final en el directorio indicado
			//imagejpeg($lienzo,"./images/thumb.jpg",$cal);
			imagejpeg($lienzo,$rutaThumbnail,$cal);
		}
		else{
			echo 'Ocurrió algún error al subir el archivo: ';
			echo $_FILES[$idFichero]['error'].'';
		}
	}

?>